Fortaleza de seguridad
El nivel de seguridad (en inglés security level), también llamado fortaleza de seguridad (en inglés security strength) o fortaleza criptográfica, para un algoritmo criptográfico o sistema, es un número asociado con la cantidad de trabajo (número de operaciones básicas de algún tipo) que se requieren para romper dicho algoritmo criptográfico o sistema.[1] Normalmente se suele expresar en número de bits y por eso a veces se le llama Nivel de seguridad de bit (en inglés bit security level).[1][2]
Cálculo
[editar]Si se requieren 2N operaciones de ejecución del algoritmo para romper el algoritmo criptográfico, entonces la fortaleza de seguridad es de N bits.[1]
Supongamos que el sistema es un candado con combinación de 4 dígitos.[2] Entonces hay 10.000 posibles combinaciones (desde 0000 a 9999) que son las que como máximo tendría que probar un ataque por fuerza bruta para romper el sistema.[2] Con 5 dígitos sería 100.000 posibles combinaciones.[2] Si en lugar de ser un candado es una password de tipo entero sin signo de 32 bits entonces hay 232 posibilidades. En ese caso se dice que la fortaleza de seguridad es de 32 bits.[2]
El número de instrucciones de máquina que se requieren para un intento depende de la arquitectura del procesador lo que afecta al tiempo.[2] En criptografía se asume que el tiempo de cada intento es mínimo, ya que es factible crear un circuito hardware dedicado para un algoritmo criptográfico concreto (ej, las extensiones AES-NI de los procesadores x86-64).[2] Por eso en criptografía, en general, se intenta elevar el Nivel de seguridad de bit, en lugar de incrementar el coste de un intento.[2]
Cuando hablamos de “RSA 2048”, “DH 4096”, o “SHA-256”, el número representa el tamaño de clave/bloque, lo que es distinto de los bits de nivel de seguridad que tiene el algoritmo.[2] La diferencia viene del hecho de que los algoritmo criptográficos confían en la dificultad para resolver ciertos problemas matemáticos, su seguridad es inevitablemente debilitada cuando se hacen progresos para resolver dichos problemas matemáticos.[2] Por ejemplo, avances en factorización de primos implica menos seguridad de RSA.[2] A veces el ataque es específico para un algoritmo, permitiendo al atacante descartar una porción significativa del espacio de claves.[2]
Ejemplos
[editar]A continuación se muestra el nivel de seguridad actual de algunos algoritmos criptográficos conocidos.
Algoritmo | Nivel de seguridad | Ref. |
---|---|---|
DES | 56 | [2] |
2TDES | <=80 | [3] |
FFC L=1024 N=160 | <=80 | [3] |
IFC k=1024 | <=80 | [3] |
ECC f=160-223 | <=80 | [3] |
3DES | 112 | [3] |
FFC L=2048 N=224 | 112 | [3] |
IFC k=2048 | 112 | [3] |
ECC f=224-255 | 112 | [3] |
AES-128 | 128 | [3] |
FFC L=3072 N=256 | 128 | [3] |
IFC k=3072 | 128 | [3] |
ECC f=256-384 | 128 | [3] |
AES-192 | 192 | [3] |
FFC L=7680 N=384 | 192 | [3] |
IFC k=7680 | 192 | [3] |
ECC f=384-511 | 192 | [3] |
AES-256 | 256 | [3] |
FFC L=15360 N=512 | 256 | [3] |
IFC k=15360 | 256 | [3] |
ECC f=512+ | 256 | [3] |
|
Nivel de seguridad | En firma digital y aplicación de solo hash | HMAC, RNG y KDF | Ref. |
---|---|---|---|
<=80 | SHA-1 | [3] | |
112 | SHA-224, SHA-512/224, SHA3-224 | [3] | |
128 | SHA-256, SHA-512/256, SHA3-256 | SHA-1 | [3] |
192 | SHA-384, SHA3-384 | SHA-224, SHA-512/224 | [3] |
>256 | SHA-512, SHA3-512 | SHA-256, SHA-512/256, SHA-384,SHA-512, SHA3-512 | [3] |
Consideraciones
[editar]Respecto al nivel de seguridad se suele considerar:
- 80 bits de nivel de seguridad no se considera suficientemente seguro.[3]
- 112 bits de nivel de seguridad es suficiente hasta 2030.[2][4]
- 128 bits de nivel de seguridad es suficiente hasta el próximo descubrimiento revolucionario en las matemáticas o de la tecnología.[2]
Categorías de fortaleza de seguridad del NIST
[editar]Las categorías de fortaleza de seguridad establecidas por el NIST permiten cuantificar la seguridad de los algoritmos.[5] El NIST dio tres posibles definiciones de seguridad, dos para cifrado y una para firma, y designó cinco categorías de fortaleza de seguridad para clasificar la complejidad computacional de los ataques que violan las definiciones de seguridad.[5] Las categorías van del 1 al 5 y mayor protección es indicado por un número de categoría superior.[6] Estas categorías estaban basadan en los recursos computacionales requeridas para desarrollar ataques de fuerza bruta contra algoritmos ya definidos en los estándar del NIST (AES y SHA) en una variedad de diferentes modelos de costes de computación, tanto clásico como cuánticos.[5]
Las cinco categorías son:[6]
- Categoría 1. Seguridad equivalente a AES-128. Resistencia cuántica débil.
- Categoría 2. Seguridad equivalente a SHA-256/SHA3-256. Resistencia cuántica fuerte.
- Categoría 3. Seguridad equivalente a AES-192. Resistencia cuántica más fuerte.
- Categoría 4. Seguridad equivalente a SHA-384/SHA3-38. Resistencia muy fuerte.
- Categoría 5. Seguridad equivalente a AES-256. Resistencia cuántica la más fuerte.
El NIST considera las cinco categorías como resistentes a criptografía cuántica, aunque describe la categoría 1 como bastante débil. NIST considera categorías 2 y 3 como probablemente seguras para el futuro inmediato y categorías 4 y 5 como probablemente excesivas y hay que evaluar si merecen la pena haciendo consideraciones de rendimiento e implementación.[6]
Referencias
[editar]- ↑ a b c Glossary. Computer Security Resource Center. NIST
- ↑ a b c d e f g h i j k l m n ñ Bit security level. Han Gyeol’s. xtendo.org
- ↑ a b c d e f g h i j k l m n ñ o p q r s t u v w x y Recommendation for Key Management, Part 1: General. NIST Special Publication 800-57 Part 1 Revision 4. Elaine Barker. Mayo de 2020
- ↑ NIST Recommendation for Key Management. Bill Buchanan OBE. medium.com. 10 de mayo de 2020
- ↑ a b c Status Report on the Second Round of the NIST Post-Quantum Cryptography Standardization Process. NIST. Julio de 2020
- ↑ a b c Cryptography Apocalypse. Preparing for the Day When Quantum Computing Breaks Today’s Crypto. Roger A. Grimes. ohn Wiley & Sons 2020